A diffusion-inspired training strategy for singing voice extraction in the waveform domain
https://scrapbox.io/files/64414a5cf951fd001b154c3b.png
日付
2023/4/21
論文リンク
文献情報
A diffusion-inspired training strategy for singing voice extraction in the waveform domain
Genís Plaja-Roglans Marius Miron Xavier Serra
ISMIR 2022
要は何?
diffusion modelの考え方を利用し,伴奏付き音楽からdenoiseしてボーカルパートを得る歌声抽出を提案
問題意識と解決策
歌声分離の問題点
waveform-based -> 位相推定の問題は考えなくていいがパラメータが多い
spectrogram-based -> 精度が良いが位相推定の問題が残る
ハイブリッド -> モデルが複雑になりがち
-> diffusion modelではパラメータを削減できて精度も保てるのでは?
オリジナルのdiffusion modelのようにノイズ-ターゲット間のプロセスではなく,
mixture-singing voice間のプロセスとした
手法
yamamoto.icon diffusion modelの理解が曖昧なので間違っているかも.
混合音 $ m, 歌声$ v, 伴奏$ aとし,$ mが与えられた時の$ vを推定する問題と定義
1. diffusion process
入力する信号$ x_0 = vにノイズを徐々に付与するマルコフ連鎖を考える
$ q(x_1,...,x_T | x_0) = \prod_{t=1}^{T} {q(x_T|x_{t-1}})
ここで付与するノイズは,スタンダードなdiffusion modelのようなガウスノイズではなく,混合音$ mにする
つまり,最終的には$ x_T = m = a+vとなるようにする
yamamoto.icon まさに冒頭の図のようなプロセスになる
各レベルのステップはパラメータ $ \beta_tによって制御され,以下の式で表せる
$ q(x_t|x_0) = \sqrt{\bar{\alpha_t}}x_0 + \sqrt{1-\bar{\alpha_t}}m
$ \alpha_t = 1-\beta_t, \bar{\alpha_t}=\prod_{s=1}^{T}\alpha_s
2. reverse process
diffusion の逆過程
$ p_\theta(x_0,...,x_T-1 | m) = \prod_{t=1}^{T} {p_\theta(x_{t-1}|x_{t}})
逆向き条件確率は以下のようにモデリングする
$ p_\theta (x_{t-1}|x_t) = (x_t-\frac{1-\bar{\alpha_t}}{\sqrt{1-\bar{\alpha_t}}}\epsilon(x_t,t))\frac{1}{\sqrt{\alpha_t}}
ただ,本研究ではノイズの分散の項を除去する
yamamoto.icon 実験的にこうした方がよかったらしい.
学習
以下を最適化
$ L(\theta) = ||\epsilon - \epsilon_\theta(\sqrt{\bar{\alpha_t}}x_0 + \sqrt{1-\bar{\alpha_t}}m,t) ||^2
ε: 真の摂動
$ \epsilon_\theta:モデルのノイズの推定値.mが組み込まれてはいるがここで実際にはaをもとにしたノイズであるとする
ノイズスケジュール $ \betaとプロセス数Tについて
$ \beta_0 = 1^{-4}, \beta_T = 0.2, T=20
$ \beta_0 = 1^{-4}, \beta_T = 0.5, T=8
を比較(スケジュールの値を大きくすると変動を大きくするため計算コストはさがるが精度が不安定になる)
伴奏の推定
伴奏を推定するときは最終的に除去すべきノイズεがaと一致するようにしたい.
このとき,$ x_0 = aとしてスタートして$ sをノイズとした学習を行う
歌声は伴奏よりも目立つようにしている=相対的に成分が多いため,このときステップ数は100に増やす
ネットワーク構成
UnconditionalなDiffwaveを用いる
Nonautoregressive Wavenet :双方向 Dilated Convを使ってWaveNetを拡張
Dilated conv blockは64チャンネル,Residual layer数30, ブロック数 10を使用
Diffusion step embedding
Diffusion stepのtに対するスケジュールの仕方(???)
https://scrapbox.io/files/64423926f48b2d001bfb4c66.png
後処理
https://scrapbox.io/files/6442439950ef52001b1ec237.png
位相はそのまま,振幅specにウィーナーフィルタを適用
実験とその結果
MUSDB18
定量評価
https://scrapbox.io/files/64423fc09ce476001bbe2cff.png
Diffusion stepは20が良い,ウィーナーフィルタによる後処理は伴奏の抽出には有効
SoTAとの比較
Wave-U-Netよりは良い性能.Demucs V2には少し劣ったもののパラメータ数を考慮すると健闘
定性評価
https://scrapbox.io/files/644240a8089d9d001b7b3782.png
MOS値はDemucs V2にかすかに勝つ -> 定量評価を考えると,知覚的に影響がある箇所に対してはDemucsと同等に抽出できている?
コメント
Diffusion modelにあんまり触れなかったのでいい機会になった
精度はまずまず
音サンプルがなかった...
新しい枠組みという点で採択されたのだと思う.単純に伴奏音を歌声に対するノイズ,逆に歌声を伴奏音に対するノイズとしたアイデアは面白い.精度向上にはやれる工夫がまだありそうな感じ.